//
//  HHUserAccount.swift
//  HHWeibo
//
//  Created by hehuafeng on 2017/3/1.
//  Copyright © 2017年 雷厉峰行. All rights reserved.
//

import UIKit

class HHUserAccount: NSObject {

    /// 用户访问令牌
    var access_token: String?
    
    /// 用户代号
    var uid: String?
    
    /// 用户令牌过期时间, 单位: 秒
    /// 开发者: 每次登录都是5年, 不会减少
    /// 使用者: 3天, 会从第一天登录开始递减
    var expires_in: TimeInterval = 0 {
        didSet {
            expiresDate = Date(timeIntervalSinceNow: expires_in)
        }
    }
    
    /// 用户令牌过期日期
    var expiresDate: Date?
    
    override var description: String {
        return yy_modelDescription()
    }
    
    /// 保存用户账户模型至沙盒
    func saveAccount() {
        // 1. 模型转字典
        var dict = (yy_modelToJSONObject() as? [String : Any]) ?? [:]
        
        // 2. 需要删除 expires_in 值, 应为该值是变化的
        dict.removeValue(forKey: "expires_in")
        
        // 3. 字典序列化 data
        guard let data = try? JSONSerialization.data(withJSONObject: dict, options: []), let filePath = ("useraccount.json" as NSString).cz_appendDocumentDir() else {
            return
        }
        
        // 4. 写入到磁盘
        (data as NSData).write(toFile: filePath, atomically: true)
    }
}
